package logic

import (
	"context"

	"github.com/zeromicro/go-zero/tools/goctl/example/api/internal/domain"
	"github.com/zeromicro/go-zero/tools/goctl/example/api/internal/svc"
)

type Admin interface {
	Login(ctx context.Context, req *domain.LoginReq) (resp *domain.LoginResp, err error)
	Create(ctx context.Context, req *domain.AdminModel) (err error)
	Find(ctx context.Context) (resp *domain.AdminModel, err error)
	List(ctx context.Context, req *domain.AdminListReq) (resp *domain.AdminListResp, err error)
}

type admin struct {
	svcCtx *svc.ServiceContext
}

func NewAdmin(svcCtx *svc.ServiceContext) Admin {
	return &admin{
		svcCtx: svcCtx,
	}
}

func (l *admin) Login(ctx context.Context, req *domain.LoginReq) (resp *domain.LoginResp, err error) {
	return
}

func (l *admin) Create(ctx context.Context, req *domain.AdminModel) (err error) {
	return
}

func (l *admin) Find(ctx context.Context) (resp *domain.AdminModel, err error) {
	return
}

func (l *admin) List(ctx context.Context, req *domain.AdminListReq) (resp *domain.AdminListResp, err error) {
	return
}
